Computer systems have internal communication systems to transfer data. These internal communication systems include a set of interconnects. The interconnects provide data communication between the components of the system. However, these interconnects can also be bottlenecks for system performance if they are not able to keep up with the demands of the components of the system.
Peripheral components coupled to a system such as by way of an input/output controller or other such hub often make direct memory access (DMA) requests. DMA requests are used to access areas of main memory to retrieve or write data. Peripheral components typically have a virtual address range assigned by an operating system that they are allowed to access. The peripheral components request and retrieve mapping data that allows them to determine the physical addresses, corresponding to the virtual addresses used by the component, of the memory location for a DMA transaction. However, the requests for translation data can create excessive traffic over system interconnects.